Skip to content

[CMAKE] Revert build baseline to C++17#19805

Merged
MasterJH5574 merged 1 commit into
apache:v0.25.0from
MasterJH5574:tvm-dev/2026-06-16-revert-c++20
Jun 17, 2026
Merged

[CMAKE] Revert build baseline to C++17#19805
MasterJH5574 merged 1 commit into
apache:v0.25.0from
MasterJH5574:tvm-dev/2026-06-16-revert-c++20

Conversation

@MasterJH5574

Copy link
Copy Markdown
Contributor

Revert the CMake C++/CUDA standard from C++20 back to C++17, undoing the standard-setting portion of #19734 and restoring the v0.25.0.rc0 build baseline.

The C++20 baseline broke the manylinux Linux wheels: under C++20, libstdc++'s constexpr std::string paths reference symbols newer than the manylinux_2_28 runtime baseline (e.g. _M_replace_cold @ GLIBCXX_3.4.30, GCC 12.1+), so the wheel fails to import with "undefined symbol". The compiler (GCC 14.2.1) is unchanged from rc0 -- only the standard differs -- so C++17 restores the working symbol set.

Only the standard-setting surfaces are reverted (CMakeLists.txt, the LLVM compile probe, docs); the C++17-compatible source modernizations from #19734 are intentionally kept to avoid reintroducing deprecated constructs.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request downgrades the required C++ and CUDA standards from C++20 to C++17 in the CMake configuration files, and updates the installation documentation to reflect the lower minimum compiler version requirements. There are no review comments, and I have no feedback to provide.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Revert the CMake C++/CUDA standard from C++20 back to C++17, undoing the
standard-setting portion of apache#19734 and restoring the v0.25.0.rc0 build
baseline.

The C++20 baseline broke the manylinux Linux wheels: under C++20, libstdc++'s
constexpr std::string paths reference symbols newer than the manylinux_2_28
runtime baseline (e.g. _M_replace_cold @ GLIBCXX_3.4.30, GCC 12.1+), so the
wheel fails to import with "undefined symbol". The compiler (GCC 14.2.1) is
unchanged from rc0 -- only the standard differs -- so C++17 restores the
working symbol set.

Only the standard-setting surfaces are reverted (CMakeLists.txt, the LLVM
compile probe, docs); the C++17-compatible source modernizations from apache#19734
are intentionally kept to avoid reintroducing deprecated constructs.
@MasterJH5574 MasterJH5574 changed the base branch from main to v0.25.0 June 17, 2026 01:58
@MasterJH5574 MasterJH5574 force-pushed the tvm-dev/2026-06-16-revert-c++20 branch from db192bb to a28a872 Compare June 17, 2026 01:58
@MasterJH5574 MasterJH5574 merged commit a28a872 into apache:v0.25.0 Jun 17, 2026
1 of 6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants